-- 设置用户访问频率限制的参数
local username = KEYS[1] -- 当前用户的用户名
local timeWindow = tonumber(ARGV[1]) -- 时间窗口(即流量风控时间窗口)，单位：秒

-- 构造 Redis 中存储用户访问次数的键名
local accessKey = "short-link:user-flow-risk-control:" .. username

-- 原子递增访问次数，并获取递增后的值---通过increment命令对key（即accessKey）进行自增
-- 在redis中重新创建该accessKey键并将键值初始为0，然后递增，所以刚开始得到的currentAccessCount为1
local currentAccessCount = redis.call("INCR", accessKey)

-- 设置键的过期时间：accessKey过期后会被Redis自动删除，下一次调用该lua脚本时redis中会重新创建该键并初始为0，然后递增
if currentAccessCount == 1 then
    redis.call("EXPIRE", accessKey, timeWindow)
end

-- 返回当前访问次数
return currentAccessCount